上世紀的 BBC Micro 和如今的 Codecademy
20 世紀 70 年代末期,計算機突然成為了某種普羅大眾能夠買回家的商品;而此前的幾十年間,它一直只是聽命於企業級霸主的神秘而笨重的機器。少數狂熱的愛好者注意到了它是多麼的吸引人,並爭相購買了屬於自己的計算機。對更多的人而言,微型計算機的到來引發了對未來的無助焦慮。同時期的雜誌上的一則廣告承諾,家用計算機將「讓您的孩子在學校享有不公平的優勢」。廣告中展示了一位打著領帶,身著時髦的西裝外套的男孩子急切地舉手回答問題,而在他的身後,他的那些顯得不那麼聰明的同學們悶悶不樂地望著他。這則廣告以及其它類似的廣告在暗示:世界正在疾速改變,而如果你不立即學習如何使用這些令人生畏的新設備之一,你和你的家人就會被時代所拋棄。
在英國,這些焦慮轉化為政府高層對國家競爭力的擔憂。從各種意義上,20 世紀 70 年代對英國來說都是平平無奇的十年,通脹與失業率高企。與此同時,一系列的罷工讓倫敦陷於一次又一次的停電中。一篇 1979 年的政府報告擔心:沒有跟上計算機技術浪潮將「為我們糟糕的工業表現平添又一個影響因素」 [1] 。英國似乎已經在計算機技術的角逐中落後了 —— 所有的大型的計算機公司都是美國的,而集成電路則在日本和中國台灣製造。
由英國政府建立的公共服務廣播公司英國廣播公司(BBC)作出了一個大膽的舉動,決定通過幫助英國人戰勝他們對計算機的反感,來解決英國的國家競爭力問題。BBC 發起了 「 計算機認知計劃 」,該計劃包括多個教育方向的努力:幾部電視連續劇、一些相關書籍、一個支持團隊網路以及一款名為 BBC Micro 的特別定製的微型計算機。該項目是如此成功,以致於 1983 年 《BYTE》雜誌的一位編輯寫道:「與美國相比,英國人對微型計算機感興趣的比例更高。」 [2] 這位編輯驚訝於在英國舉辦的 第五屆個人計算機世界展 的人數比參加當年的西海岸計算機展的人數更多。超過六分之一的英國人觀看了由該計劃製作的第一部電視連續劇,並最終售出了 150 萬台 BBC Micro 微型計算機。 [3]
去年,一份包含了由計算機認知計劃製作的每一部電視連續劇和所有出版資料的 檔案 被發布在了互聯網上。我抱著極大的興趣觀看了這些電視連續劇,並試圖想像在 20 世紀 80 年代早期學習計算機使用是什麼樣子。但事實證明,更有趣的是計算機是如何被教授的。今天,我們仍然擔心技術發展使人們落伍。富有的科技企業家與政府花費大量的資金試圖教孩子們「編碼」。我們擁有諸如 Codecademy 這樣的網站,通過新技術的運用進行互動式編程教學。我們可能假定這種方式比 80 年代的呆板的電視連續劇更高效,不過真的是這樣嗎?
計算機認知計劃
1975 年發布的 Altair 8800 拉開了微型計算機革命的大幕。不到兩年,Apple II、TRS-80 以及 Commodore PET 也都相繼發布。全新的計算機的銷量爆髮式增長。1978 年,BBC 在一部名為 《 晶元來了 》(LCTT 譯註:對於非英國區域的讀者,可以在 這裡 觀看該紀錄片)的紀錄片中探討了這些新機器必將會帶來的劇烈的社會變革。
該紀錄片充滿擔憂。在前 5 分鐘內,解說員提到這種微電子器件將「徹底改變我們的生活方式」。隨著詭異的合成音樂的播放,屏幕上綠色的電脈衝圍繞著放大後的晶元起舞,解說員進一步說,這種晶元「正是日本放棄造船業的原因,也將成為我們的孩子們長大後失業的原因」。該紀錄片繼續探討了機器人如何用於汽車自動化組裝,以及歐洲的手錶業如何在與美國的電子錶行業競爭中敗下陣來。它指責英國政府在應對未來的大規模失業的準備上做得不夠。
該紀錄片據信可能在英國議會上展示過。 [4] 包括工業署和人力服務委員會在內的一些政府代表,開始對嘗試提高英國公眾對計算機的認識感興趣。人力服務委員會為來自 BBC 的教育部門提供了資助,讓他們的一個團隊到日本、美國以及其他國家進行了實地考察。該研究團隊完成了一份報告,曆數了微電子技術在工業製造、勞動關係與辦公室工作等領域的哪些方面將發生重大改變。70 年代末,BBC 決定製作一部十集電視連續劇,幫助普通英國人「學習如何使用和控制計算機,避免產生被計算機支配的感受」 [5] 。這一努力最終成為了一個與 「 成人認知計劃 」 相似的多媒體項目。成人認知計劃是 BBC 此前進行的一項工作,包括一部電視連續劇以及補充課程,幫助兩百萬人提高他們的閱讀能力。
計算機認知計劃背後的製作方熱衷於以「實操」示例為特色的電視連續劇。這樣如果觀眾擁有一台微型計算機在家裡,他們就可以親自動手嘗試。這些例子必須使用 BASIC 語言,因為這是在幾乎所有的微型計算機上都使用的編程語言(實際是整個 交互界面 )。但是製作者面臨一個棘手的問題:微型計算機製造商均擁有他們自己的 BASIC 方言,因此不論他們選擇哪一種方言,他們都不可避免地疏遠大部分的觀眾。唯一切實可行的方案是創造一種全新的 BASIC 方言 —— BBC BASIC,以及與之配合使用的微型計算機。英國公眾可以購買這種全新的微型計算機,並依照示例操作,而不需要擔心軟硬體上的差異帶來的問題。
BBC 的電視製作人與節目主持人並不具備自行製造微型計算機的能力,因此他們匯總了一份他們預期的計算機的規範,並邀請英國的微型計算機公司推出滿足該規範要求的新機器。這份規範要求提供一種相對更強勁的計算機,因為 BBC 的製作方認為相應的設備應當能夠運行真實有用的應用程序。計算機認知計劃的技術顧問還建議:如果必須要教授全體國人一種 BASIC 方言的話,那麼最好選擇表現良好的方言(他們可能沒有確切地這樣說,不過我認為這就是他們的真實想法)。BBS BASIC 通過允許遞歸調用與局部變數彌補了一些 BASIC 語言的常見缺點。 [6]
BBC 最終決定由一家位於劍橋的名為 Acorn Computers 的公司製造 BBC Micro 計算機。在選擇 Acorn 公司的時候,BBC 沒有接受來自 Clive Sinclair 的申請,他經營著一家 Sinclair Research 公司。1980 年,Sinclair 公司通過 Sinclair ZX80 為英國開拓了微型計算機的大眾市場。雖然 Sinclair 公司的新產品 ZX81 更便宜,但是性能不足以滿足 BBC 的要求。而 Acorn 的新型計算機(內部被稱為 Proton)的原型機更加昂貴,但是性能更好,更具備擴展性。BBC 對此印象深刻。該型號的計算機從未以 「Proton」 的名字上市或銷售過,因為它在 1981 年 12 月以 「BBC Micro」 的名字發布了。BBC Micro 又被親切地稱為 「The Beeb」,你可以以 235 英磅的價格購得其 16k 內存的版本,或者以 335 英磅的價格獲得其 32k 內存的版本。
到了 1980 年,Acorn 在英國計算機行業逐漸衰微,但是 BBC Micro 幫助 Acorn 公司創立了其遺留至今的寶貴遺產。時至今日,世界範圍內最流行的微處理器指令集是 ARM 架構,「ARM」 如今代表的是 「 先進 RISC 架構設備 」,然而最初它代表的是 「 Acorn RISC 架構設備 」。ARM 架構背後的 ARM 控股公司就是 Acorn 公司在 1990 年之後的延續。
BBC Micro 的一幅差勁的圖片,我攝於美國加州山景城的 計算機歷史博物館
《計算機程序》電視連續劇
作為計算機認知計劃的一部分,他們最終製作了十幾部不同的電視連續劇。第一部作品是一部名為 《計算機程序The Computer Programme》 的十集電視連續劇。該連續劇在 1982 年初播出了十周。每周晚上有一百萬人收看該節目,還有 25 萬人在每周日與周一的下午收看該節目的重播。
該電視節目由兩名主持人主持:Chris Serle 和 Ian McNaught-Davis。Serle 扮演初學者,而 McNaught-Davis 扮演專家,他具有專業的大型計算機編程經驗。這是一個啟發性的方式,有些 略顯笨拙的過渡 —— Serle 經常直接從與 McNaught-Davis 的對話中,過渡到面向鏡頭的邊走邊說的講述,此時你不禁會疑惑 McNaught-Davis 是否還站在畫面之外。不過這意味著 Serle 可以表達觀眾肯定會有的關注 —— 他可能會驚恐地看著滿屏的 BASIC 語言,並提出類似「這些美元符號是什麼意思」的問題。在節目中的某些時刻,Serle 與 McNaught-Davis 會坐在計算機前進行事實上的結對編程。McNaught-Davis 會在各個地方留下一些線索,而 Serle 則試圖將它們弄清楚。如果這一節目僅僅由一個無所不知的講述者主持,那麼它的親和力就會差很多。
該節目也在努力展示計算在普通人生活中的實際應用。到 80 年代早期,家用電腦已經開始與年輕男孩和電子遊戲聯繫在一起。計算機認知計劃的製作方試圖避免採訪「令人印象深刻的、有能力的年輕人」,因為這可能會「加劇老年觀眾的焦慮」,而該節目正打算吸引這一人群對計算感興趣 [7] 。在該系列的第一集中,該節目的 「現場」 記者 Gill Nevill 採訪了一位女性,她購買了一台 Commodore PET 計算機用於輔助管理她的糖果店。這位名叫 Phyllis 的女性受訪者看上去大約 60 多歲,但她在使用 PET 完成她的會計工作上沒有任何問題,甚至已經開始使用 PET 為其他企業做計算機工作,這聽上去像是一個有前途的自由職業的開端。Phyllis 說她並不介意計算機工作逐步取代她的糖果店生意,因為她更喜歡計算機工作。這次採訪要是換成對一名青少年的採訪,介紹了他是如何修改 《Breakout》 電子遊戲,以使之運行更快並更具挑戰性,不過這就幾乎鼓舞不了任何人。另一方面,如果普羅大眾中的 Phyllis 都會使用計算機,那麼你當然也可以。
雖然該節目以大量的 BASIC 編程為特色,不過它實際想要教給觀眾的是,計算機通常是如何工作的。該節目通過類比的方法解釋了其中的一般原則。在第二集中,有一個關於 Jacquard 織機(LCTT 譯註:中文網路譯為雅卡爾提布機)的延伸討論,主要是兩個方面:其一,它揭示了計算機並不僅僅基於昨天發明的神秘技術 —— 計算的一些基本原則可以上溯到兩百年前,就跟你可以在卡片上打孔來控制紡織機的想法一樣簡單;其二,經線與緯線的交織用來證明二元選擇(即緯線是從上方還是下方穿過經線)在不斷重複時足以產生巨大變化。當然,節目接下來繼續討論信息是如何使用二進位存儲的。
在該節目中接下來是一個蒸汽管風琴的章節,該管風琴能夠演奏編碼在一卷長長的、分段的打孔卡片的音樂。這個類比用以解釋 BASIC 中的 子程序 。Serle 與 McNaught-Davis 將整卷的打孔卡片攤開在演播室的地板上,然後指出看上去像是重複的副歌的分段。McNaught-Davis 解釋說,如果你將這些重複的卡片分段剪下,並以某種方式添加一條指令,回到第一次播放該副歌的最初的分段,這就是子程序。這是一個絕妙的解釋,它在人們的腦海中的印象非常深刻。
我僅僅摘錄了一些例子,不過我認為,總的來看該節目尤為擅長通過解釋計算機實現功能所依賴的原理,使計算機不再神秘。這一節目本可以專註於 BASIC 教學,不過它並沒有這樣做。這被證明是一個相當明智的選擇。在 1983 年寫就的一篇回憶文章中,計算機認知計劃的總製作人 John Radcliffe 如是寫道:
如果計算機將如我們所相信的那樣重要,對這一新主題的真正理解對每個人都很重要,也許與文字讀寫能力同等重要。不管是在我們這裡還是在美國,在計算機認知的主要路線上的早期思路均集中於編程上。然而隨著我們思想的發展,儘管我們意識到「動手」體驗在個人計算機上的價值,但我們開始降低對編程的重視,而更多的強調廣泛的理解,將微型計算機與大型計算機聯繫起來,鼓勵人們獲取一系列應用程序與高級語言的經驗,並將這些經驗同現實世界中的工業與商業活動中的經驗聯繫起來……。我們相信,一旦人們掌握了這些最簡單的原則,它們將可以進一步深入該主題。
後來,Radcliffe 又以類似的口吻寫道:
圍繞著這一系列節目的主要闡釋目標有很多爭論。一些人認為,在使用微型計算機上的實際細節上給予建議,對本項目而言尤為重要。但我們的結論是,如果該系列節目要擁有可持續性的教育價值,它就必須通過對計算原理的解釋,成為進入真實計算世界的一種方式。這需要通過對微型計算機上的室內演示,通過類比方式解釋其中的原則,以及通過電影說明實際應用的真實例子來實現。不僅僅是微型計算機,小型機以及大型機也將被展示。
我喜愛這一連續劇,尤其是其中關於小型機與大型機的部分。計算機認知計劃背後的製作方旨在幫助英國人找準定位:計算身處何處又去向何方?計算機現在能做什麼,未來又能做什麼?學習一些 BASIC 語言是回答這些問題的一個部分,但是僅僅理解 BASIC 語言似乎不足以使人們認知計算機。
如今的計算機認知
如果你現在搜索「學習編碼」,你看到的排在第一的是指向 Codecademy 網站的鏈接。如果要說存在一個「計算機認知計劃」的現代替代品 —— 具有相同的影響與目標,那就是 Codecademy。
「 學習編碼 」 是 Codecademy 的口號。我認為我不是第一個指出這一點的人 —— 事實上我可能在某個地方讀過這句話,只是現在拿來用而已。但是這裡使用的是 「 編碼 」 而非 「 編程 」,這說明了一些問題。這表明你學習的重要內容是如何讀懂代碼,如何閱讀滿屏的 Python 代碼的意思,而不是目光獃滯、不知所云。我能夠理解為什麼對於普通人而言,這似乎是成為專業程序員的主要障礙。專業程序員整日盯著布滿編程術語的計算機屏幕,如果我想要成為一個專業程序員,我最好確保我能夠理解這些天書一樣的字元。但是理解語法並不是成為程序員的最大的挑戰。在更大的障礙面前,它很快將變成微不足道。僅僅以掌握一門編程語言的語法為目標,你可能能夠 閱讀 代碼,但是無法做到 編寫 代碼以解決全新的問題。
我最近學習了 Codecademy 的 《編程基礎》 課程。如果你對編程感興趣(而不是對網頁開發或者數據科學),並且沒有任何編程經驗,這是 Codecademy 推薦你學習的課程。裡面有幾節關於計算機科學史的課時,不過都是流於表面而沒有深入研究。(感謝上帝,一位高尚的互聯網秩序義務維護者 指出了其中存在的一個特別惡劣的錯誤)。該課程的主要目的是教授你編程語言的通用結構要素:變數、函數、控制流、循環等。換句話說,該課程聚焦於為了讓你理解天書般的代碼中的模式,而所需要知道的內容。
公平地看,Codecademy 也提供了其他內容深入的課程。但是即使是如 《計算機科學之路》 這樣的課程也幾乎只僅僅專註於編程以及程序中表達的概念。有人可能會反駁說這才是重點 —— Codecademy 的主要特點就是提供給你一些互動式的、帶有自動反饋的編程課程。在有限的自動化課程中能夠灌輸給學員的內容只有這麼多,因此學員的腦海里也沒有更多的空間容納更多其他的內容。但是負責啟動計算機認知計劃的 BBC 的製作人也面臨同樣的問題。他們意識到受限於他們的傳播媒介,「通過電視節目所能獲得的學習內容的容量也是受限的」 [8] 。雖然在他們所能傳達的信息總量上存在相似的限制,但是 BBC 的製作人選擇強調在學習 BASIC 語言上的一般原則。難道 Codecademy 就不能將其中一兩節互動式可視化的課時替換為編織經線與緯線的 Jacquard 織機的案例嗎?
我一直在大聲鼓吹 「一般原則」,因此讓我再解釋下我認為的一般原則是什麼,以及為什麼它們如此重要。J. Clark Scott 出了一本有關計算機的書,書名為 《 但是它怎麼知道? 》。這個書名來自書的序言里的一則笑話:一個店員向人群推銷保溫瓶,說保溫瓶可以讓熱食始終是熱的,冷食始終是冷的。一名聽眾對這個新發明感到驚訝,問道,但是它怎麼知道(根據你給它的食物類型的不同選擇做相應的事情呢)?笑點在於保溫瓶當然不能感知食物的溫度然後據此做出決定 —— 保溫瓶僅僅製作成保證冷食必然保持冷的,熱食必然保持熱的就可以了。人們也以(笑話中的那個聽眾)一樣的方式看待計算機,相信計算機就是數字大腦,能夠基於提供給它們的代碼 「選擇」 做一件事或者另一件事。但是了解一些有關計算機如何工作的知識,哪怕是很初級水平的理解,也能讓(人們理解中的)計算機擺脫(做判斷的)侏儒。這就是為什麼 Jacquard 織機是一個很好的有助理解的例子。一開始它似乎是一種難以置信的設備,它讀取打孔卡片,然後以某種方式「知道」編織正確的樣式。現實是顯而易見的:每一行孔都對應一根線,而一行中有孔的地方對應著提起的線。理解了這些雖然不會有助於你用計算機完成新的事情,但是將使你自信於你不是在跟某些神秘事物打交道。我們應當儘快將這種自信的感受傳授給初學者。
唉,可能真正的問題是沒有人想要了解 Jacquard 織機。根據 Codecademy 如何強調他們教授的專業應用來判斷,很多人開始使用 Codecademy 可能是因為他們相信這有助於 「提升」 他們的職業水平。他們沒有來由地相信,首要的問題是理解編程的專業術語,因此他們才想要 「學習編碼」。他們想要在他們所擁用的。每天晚上晚餐與就寢之間的一兩個小時里儘快完成這件事。Codecademy 畢竟只是一門投其所好的生意,而非一些有關 18 世紀就發明了的機器的間接說明。
另一方面,計算機認知計劃是供職於 BBC 的一群製作人與公務員所認為的,將計算機的使用教給國民的最好的方式。我承認,因為這一群人教會大眾他們無法以己之力所能求得的事物,而讚美這一群人的建議多少有點精英主義。但我情不自禁認為他們做對了。許多人使用 BBC Micro 第一次學會了使用計算機,他們中的很多人進而成為了成功的軟體開發者或遊戲設計師。正如我曾經所說的,我懷疑在計算機已經變得相對簡單的時代里,學習使用計算機是一個巨大的優勢。不過或許這群人所擁有的另一個優勢在於有像 《計算機程序》 這樣的盡己所能不僅僅教授編程,而且教授計算機是為什麼又是如何運行程序的節目。在看完 《計算機程序》 之後,你可能並不能理解計算機屏幕上的所有天書般的編程術語,但是實際上你也並不需要,因為你知道無論 「代碼」 是什麼樣子,計算機總是在重複做基礎的事情。在完成了 Codecademy 上的一到兩個課程之後,你可能能夠感受一些天書般的編程術語,但是對你來說,一台計算機仍然只是一台能夠以某種方式將天書般的字元轉化為運行的軟體的魔法機器。但這並不是計算機認知。
- Robert Albury and David Allen, Microelectronics, report (1979). ↩︎
- Gregg Williams, 「Microcomputing, British Style」, Byte Magazine, 40, January 1983, accessed on March 31, 2019, https://archive.org/stream/byte-magazine-1983-01/1983_01_BYTE_08-01_Looking_Ahead#page/n41/mode/2up. ↩︎
- John Radcliffe, 「Toward Computer Literacy,」 Computer Literacy Project Achive, 42, accessed March 31, 2019, https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf. ↩︎
- David Allen, 「About the Computer Literacy Project,」 Computer Literacy Project Archive, accessed March 31, 2019, https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/history. ↩︎
- ibid. ↩︎
- Williams, 51. ↩︎
- Radcliffe, 11. ↩︎
- Radcliffe, 5. ↩︎
via: https://twobithistory.org/2019/03/31/bbc-micro.html
作者:Two-Bit History 選題:lujun9972 譯者:CanYellow 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive